{extend name="public/base" /}

{block name="head"}
<link href="__PLGS__/plugins/iCheck/custom.css" rel="stylesheet">

{/block}

{block name="body" /}


<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
    <div class="ibox float-e-margins">
        <div class="ibox-title" style="padding-top: 7px;">
            <div class="col-sm-2">
                <h5 style="margin-top: 7px;">数据表管理</h5>
            </div>
            <div class="col-sm-8">
                <div class="btn-group">
                    <form class="form-inline " method="get">
                        <a id="export" class="layui-btn layui-btn-sm" href="javascript:;" autocomplete="off">立即备份</a>

                        <a id="optimize" href="{:url('admin/databackup/optimize')}" class="layui-btn layui-btn-sm ">优化数据表</a>
                        <a id="repair" href="{:url('admin/databackup/repair')}" class="layui-btn layui-btn-sm">修复数据表</a>
                        <a  href="{:url('admin/databackup/importlist')}" class="layui-btn layui-btn-sm">还原数据库</a>

                    </form>
                </div>
            </div>

        </div>
        <div class="ibox-content" style="margin-top: 15px;">
            <div class="row row-lg">
                <div class="col-sm-12">
                    <div class="example">
                        <form id="export-form" method="post" action="{:url('admin/databackup/export')}">
                        <table class="table table-bordered table-striped table-hover table-responsive">
                            <thead>
                            <tr>
                                <th width="48">
                                    <a href="javascript:" class="btn btn-white btn-sm" onclick="quan()"><i class="fa fa-amazon"></i></a>
                                </th>
                                <th>表名</th>
                                <th>数据量</th>
                                <th>数据大小</th>
                                <th>创建时间</th>
                                <th>备份状态</th>
                                <th>操作</th>
                            </tr>
                            </thead>
                            <tbody>

                            {volist name="list" id="table"}

                            <tr>
                                <td>
                                    <input class="ids"   type="checkbox" name="tables[]" checked value="{$table.name}">
                                </td>
                                <td>{$table.name}</td>
                                <td>{$table.rows}</td>
                                <td>{$table.data_length|format_bytes}</td>
                                <td>{$table.create_time}</td>
                                <td class="info">备份未开始</td>
                                <td>
                                    <a  href="javascript:;" class="layui-btn layui-btn-xs optimiz" tables="{$table.name}">优化表</a>&nbsp;
                                    <a  href="javascript:;" class="layui-btn layui-btn-xs repair" tables="{$table.name}">修复表</a>
                                </td>



                            </tr>

                            {/volist}


                            </tbody>
                        </table>
                        </form>
                    </div>


                </div>
            </div>
        </div>
    </div>
    <!-- End Panel Basic -->
</div>








</body>

<script src="__PLGJ__/plugins/iCheck/icheck.min.js"></script>

<script>

    $(document).ready(function() {
        $('.i-checks').iCheck({
            checkboxClass: 'icheckbox_square-green',
            radioClass: 'iradio_square-green',
        });
    });





</script>
<script>
    layui.use(['jquery','layer'],function(){
        window.$ = layui.$;
        var layer = layui.layer;
        //备份表方法
        $("#export").click(function(){
            $(this).html("正在发送备份请求...");
            $.post(
                $("#export-form").attr("action"),
                $("#export-form").serialize(),
                function(data){
                    if(data.code==1){
                        $("#export").html( "开始备份，请不要关闭本页面！");
                        backup(data.data.tab);
                        window.onbeforeunload = function(){ return "正在备份数据库，请不要关闭！" }
                    }else{
                        layer.tips(data.msg, "#export", {
                            tips: [1, '#3595CC'],
                            time: 4000
                        });
                        $("#export").html("立即备份");
                    }

                }, "json");
            return false;
        });
        //递归备份表
        function backup(tab,status){
            status && showmsg(tab.id, "开始备份...(0%)");
            $.get( $("#export-form").attr("action"), tab, function(data){
                // console.log(data)
                if(data.code==1){
                    showmsg(tab, data.msg);

                    if(!$.isPlainObject(data.data.tab)){
                        $("#export").html("备份完成");
                        window.onbeforeunload = function(){ return null }
                        return;
                    }

                    backup(data.data.tab, tab.id != data.data.tab.id);
                } else {
                    $("#export").html("立即备份");
                }
            }, "json");

        }
        //修改备份状态
        function showmsg(tab, msg){
            $("table tbody tr").eq(tab.id).find(".info").html(msg)
        }

        //优化表
        $("#optimize").click(function(){
            $.post(this.href, $("#export-form").serialize(), function(data){

                layer.tips(data.msg, "#optimize", {
                    tips: [1, '#3595CC'],
                    time: 4000
                });

            }, "json");
            return false;
        });

        //修复表
        $("#repair").on("click",function(e){

            $.post(this.href, $("#export-form").serialize(), function(data){
                layer.tips(data.msg, "#repair", {
                    tips: [1, '#3595CC'],
                    time: 4000
                });
            }, "json");
            return false;
        });
    });


    $('.optimiz').click(function(){
        var tables = $(this).attr('tables');
        $.ajax({
            url:"{:url('admin/databackup/optimize')}"
            ,data:{tables:tables}
            ,success:function(res){
                layer.msg(res.msg);
            }
        })
    })

    $('.repair').on('click',function(){
        var tables = $(this).attr('tables');
        $.ajax({
            url:"{:url('admin/databackup/repair')}"
            ,data:{tables:tables}
            ,success:function(res){
                layer.msg(res.msg);
            }
        })
    })


    /**
     * 全选
     */
    function quan(){
        $("input:checkbox[class='ids']").each(function(){
            $(this).prop("checked",!$(this).prop("checked"));
        });

    }

</script>


{/block}